<?php
namespace Platform\Api;

use PhalApi\Api;
use Platform\Domain\Login as LoginDomain;

/**
 * 登录、注册、退出服务
 */
class Login extends Api {
    public function getRules() {
        return array(
            'login' => array(
                'username' => array('name' => 'username', 'require' => true, 'min' => 1, 'max' => 50, 'desc' => '用户名'),
                'password' => array('name' => 'password', 'require' => true, 'min' => 6, 'max' => 20, 'desc' => '密码'),
            ),
            'menu' => array(
            ),
            'register' => array(
                'username' => array('name' => 'username', 'require' => true, 'min' => 1, 'max' => 50, 'desc' => '用户名'),
                'password' => array('name' => 'password', 'require' => true, 'min' => 6, 'max' => 20, 'desc' => '密码'),
                'role_id' => array('name' => 'role_id', 'require' => true, 'desc' => '角色id'),
                'role_name' => array('name' => 'role_name', 'require' => true, 'desc' => '角色名称'),
                'department' => array('name' => 'department', 'require' => false, 'desc' => '部门'),
                'realname' => array('name' => 'realname', 'require' => true, 'desc' => '姓名'),
                'phone' => array('name' => 'phone', 'require' => true, 'desc' => '联系方式'),
                'audit_power' => array('name' => 'audit_power', 'require' => false, 'desc' => '是否能跳过审核发布信息 1能 0不能 默认不能，只对信息发布者起作用'),
            ),
        );
    }

    /**
     * 登录接口
     * @desc 根据账号和密码进行登录操作
     * @return string token 用户标识
     * @return int role_id 用户权限id ：1平台管理员 2信息发布者 3信息审核者
     * @return int id 用户id
     * @return string role_name 角色名称
     * @return string phone 联系方式
     * @return int state 状态，1可用0禁止
     * @return string realname 姓名
     * @return string department 部门
     * @return string audit_power 是否能跳过审核发布信息 1能 0不能 默认不能，只对信息发布者起作用
     */
    public function login() {
        $domain = new LoginDomain();
        $token = $domain->login($this->username, $this->password);
        return $token;
    }

    /**
     * 获取树状菜单
     * @desc 获取全部的菜单，以树状结构返回。当前最多支持4级菜单。
     */
    public function menu() {
        $domain = new LoginDomain();
        $menus = $domain->listAllMenus();
        return $menus;
    }

    /**
     * 退出管理员登录
     * @desc 退出当前管理的登录
     * @return boolean is_logout 是否退出成功
     */
    public function logout() {
        \PhalApi\DI()->manage->logout();
        return array('is_logout' => true);
    }
} 
